/*
Copyright (C) 2008 raohmaru <http://www.raohmaru.com>

This file is part of Raohmaru AS3 Framework.

Raohmaru AS3 Framework is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Raohmaru AS3 Framework is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with Raohmaru AS3 Framework.  If not, see <http://www.gnu.org/licenses/>.
*/

package jp.raohmaru.net
{
/**
 * La clase Asset representa objeto de recurso utilizado en la lista de descarga de un objeto AssetLoader.
 * @author raohmaru
 * @version 1.0
 */
public class Asset
{
	/**
	 * La URL que señala a un archivo externo o a un origen de datos.
	 */
	public var url :String;
	/**
	 * Nombre identificativo para el recurso.
	 */
	public var name :String;
	/**
	 * Valía del recurso para que éste ocupe un rango mayor en la propiedad <code>AssetLoader.overallProgress</code>.
	 * @see jp.raohmaru.net.AssetLoader#overallProgress
	 * @default 1
	 */
	public var importance :Number;
	/**
	 * Un valor que define el tipo de recurso a descargar. Los posibles valores son:
	 * <ul><li>AssetLoader.FILE (un archivo)</li>
	 * <li>AssetLoader.DATA (un origen de datos, p. ej. un archivo XML)</li></ul>
	 * @default AssetLoader.FILE
	 */
	public var type :String;
	/**
	 * @private
	 */
	internal var scale :Number;
	
	/**
	 * Crea un nuevo objeto Asset con los parámetros especificados.
	 * @param url La URL que señala a un archivo externo o a un origen de datos.
	 * @param name Nombre identificativo para el recurso.
	 * @param importance Valía del recurso para que éste ocupe un rango mayor en la propiedad <code>overallProgress</code>.
	 * @param type Un valor que define el tipo de recurso a descargar. Los posibles valores son:
	 * <ul><li>AssetLoader.FILE (un archivo)</li>
	 * <li>AssetLoader.DATA (un origen de datos, p. ej. un archivo XML)</li></ul>
	 */
	public function Asset(url :String, name :String, importance :Number=1, type :String="file")
	{
		this.url = url;
		this.name = name;
		this.importance = importance;
		this.scale = importance;
		this.type = type;
	}
	
	/**
	 * Crea una copia del objeto Asset y define el valor de cada parámetro para que coincida con el original.
     * @return Copia de la instancia de Asset actual.
	 */
	public function clone() :Asset
	{
		return new Asset(url, name, importance, type);
	}
}
}